﻿namespace Community.CsharpSqlite.Entity
{
    /*
  ** The WHERE clause processing routine has two halves.  The
  ** first part does the start of the WHERE loop and the second
  ** half does the tail of the WHERE loop.  An instance of
  ** this structure is returned by the first half and passed
  ** into the second half to give some continuity.
  */

    public class WhereInfo
    {
        public WhereLevel[] a = new[] {new WhereLevel()}; /* Information about each nest loop in the WHERE */
        public int iBreak; /* Jump here to break out of the loop */
        public int iContinue; /* Jump here to continue with next record */
        public int iTop; /* The very beginning of the WHERE loop */
        public int nLevel; /* Number of nested loop */
        public byte okOnePass; /* Ok to use one-pass algorithm for UPDATE or DELETE */
        public Parse pParse; /* Parsing and code generating context */
        public SrcList pTabList; /* List of tables in the join */
        public WhereClause pWC; /* Decomposition of the WHERE clause */
        public byte untestedTerms; /* Not all WHERE terms resolved by outer loop */
        public ushort wctrlFlags; /* Flags originally passed to sqlite3WhereBegin() */
    };
}